Constraints হল ডেটাবেসের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা ডেটার অখণ্ডতা (integrity) এবং সঠিকতা (accuracy) নিশ্চিত করতে সাহায্য করে। Unique এবং Check constraints দুটি গুরুত্বপূর্ণ কনস্ট্রেইন্ট যা ডেটাবেস টেবিলের ডেটা সঠিকভাবে সংগঠিত ও বৈধ রাখতে ব্যবহৃত হয়। এখানে এই কনস্ট্রেইন্টগুলির ব্যবহার এবং সুবিধা সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Unique Constraint একটি কনস্ট্রেইন্ট যা একটি কলামে ডুপ্লিকেট মান (duplicate values) এড়াতে সাহায্য করে। এটি নিশ্চিত করে যে কোনো নির্দিষ্ট কলামে প্রতিটি মান অনন্য (unique) হবে, অর্থাৎ একই মান একাধিক রেকর্ডে থাকতে পারে না।
ধরা যাক, আপনি একটি Customers টেবিল তৈরি করছেন, যেখানে প্রতিটি Email অবশ্যই অনন্য (unique) হবে। এই ক্ষেত্রে Email কলামে Unique কনস্ট্রেইন্ট ব্যবহার করা হবে।
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
CustomerName VARCHAR(100),
Email VARCHAR(100) UNIQUE
);
এখানে, Email কলামে Unique কনস্ট্রেইন্ট নির্ধারণ করা হয়েছে, যার ফলে এই কলামে একই ইমেইল একাধিক বার থাকতে পারবে না।
Check Constraint হল একটি কনস্ট্রেইন্ট যা টেবিলের কলামে ডেটা প্রবেশের আগে নির্দিষ্ট শর্ত বা নিয়ম বাধ্যতামূলক করে। এই কনস্ট্রেইন্টটি কলামের মান যাচাই করে এবং শুধুমাত্র সেই মানগুলি অনুমোদন করে যা নির্ধারিত শর্ত পূর্ণ করে।
ধরা যাক, আপনি একটি Employees টেবিল তৈরি করছেন যেখানে Age কলামে কর্মচারীর বয়স ১৮ বছরের বেশি হতে হবে। এই শর্তটি Check কনস্ট্রেইন্ট দিয়ে নির্ধারণ করা হবে।
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(100),
Age INT CHECK (Age >= 18)
);
এখানে, Age কলামে Check Constraint দেওয়া হয়েছে, যার মাধ্যমে নিশ্চিত করা হচ্ছে যে, কর্মচারীর বয়স ১৮ বছরের নিচে হবে না। এই শর্তটি ভঙ্গ করলে ডেটা এন্ট্রি সম্ভব হবে না।
বৈশিষ্ট্য | Unique Constraint | Check Constraint |
---|---|---|
কাজ | কলামে ডুপ্লিকেট মান প্রতিরোধ করে। | কলামে নির্দিষ্ট শর্ত বা মান যাচাই করে। |
নাল মান | NULL মান অনুমোদিত (বেশিরভাগ ক্ষেত্রে)। | NULL মান ব্যবহার করা যাবে, তবে শর্তের উপর নির্ভর করে। |
প্রকার | একটি কলামে শুধুমাত্র একক মান থাকতে পারে। | কলামের মান অবশ্যই একটি নির্দিষ্ট শর্ত পূর্ণ করতে হবে। |
ব্যবহার | ডেটার এককতা নিশ্চিত করতে ব্যবহৃত হয়। | ডেটার বৈধতা এবং সঠিকতা নিশ্চিত করতে ব্যবহৃত হয়। |
ধরা যাক, আপনি একটি Student টেবিল তৈরি করছেন যেখানে StudentID এবং RollNo উভয়ই অনন্য হতে হবে।
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
RollNo INT UNIQUE
);
এখানে, RollNo কলামে Unique কনস্ট্রেইন্ট দেওয়ার মাধ্যমে নিশ্চিত করা হচ্ছে যে, প্রতিটি ছাত্রের রোল নম্বর একক হবে এবং ডুপ্লিকেট রোল নম্বর প্রবেশ করতে পারবে না।
ধরা যাক, আপনি একটি Product টেবিল তৈরি করছেন যেখানে Price কলামের মান ১০০ এর বেশি হতে হবে। এটি Check কনস্ট্রেইন্ট ব্যবহার করে নির্ধারণ করা হবে।
CREATE TABLE Product (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10, 2) CHECK (Price > 100)
);
এখানে, Price কলামে Check Constraint ব্যবহার করা হয়েছে, যার মাধ্যমে নিশ্চিত করা হচ্ছে যে, প্রতিটি পণ্যের দাম ১০০ এর বেশি হবে।
common.read_more